import { Column, CreateDateColumn, DeleteDateColumn, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { IBase } from "./interfaces";



/**
 * 基础实体类
 * 所有实体类都应继承此类
 * 包含通用字段：ID、创建时间、更新时间、删除时间
 */
export class Base implements IBase {

    /** 组件ID */
    @PrimaryGeneratedColumn('uuid', { comment: '组件ID' })
    id: string;

    /** 创建时间 */
    @CreateDateColumn({ comment: '创建时间' })
    createdAt: Date;

    /** 更新时间 */
    @UpdateDateColumn({ comment: '更新时间' })
    updatedAt: Date;

    /** 删除时间 */
    @DeleteDateColumn({ comment: '删除时间' })
    deletedAt: Date;

    /** 创建人 */
    @Column({ comment: '创建人', nullable: true })
    createdBy?: string;

    /** 更新人 */
    @Column({ comment: '更新人', nullable: true })
    updatedBy?: string;
}